package util;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

public class MapperUtil {
  public static <T,K> void   MapperClass(T tar,K src){
      Map<String,Field> maps=new HashMap<>();
      Field[] srcFields=src.getClass().getDeclaredFields();
      Field[] tarFields=tar.getClass().getDeclaredFields();
      for(var f:srcFields){
          maps.put(f.getName(),f);
      }
      for (var f:tarFields){
          var temp=maps.getOrDefault(f.getName(),null);
          if(temp!=null&&temp.getType()==f.getType()){
              temp.setAccessible(true);
              f.setAccessible(true);
              try {
                  f.set(tar,temp.get(src));
              } catch (IllegalAccessException e) {
                  e.printStackTrace();
              }
          }
      }
  }
}
